package com.material.pound.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.material.common.annotation.Excel;
import com.material.common.core.domain.BaseEntity;

/**
 * 磅单信息对象 fuel_pound
 * 
 * @author ruoyi
 * @date 2025-05-07
 */
public class FuelPound extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 工厂id */
    private Long factoryId;

    /** 供应商id */
    private Long supplierId;

    /** 燃料品名id */
    private Long fuelId;

    /** 送料车辆id */
    private Long carId;

    /** 工厂名称 */
    @Excel(name = "工厂名称")
    private String factoryName;

    /** 供应商名称 */
    @Excel(name = "供应商")
    private String supplierName;

    /** 燃料品名 */
    @Excel(name = "燃料品名")
    private String fuelName;

    /** 车辆车牌 */
    @Excel(name = "车牌号")
    private String carNum;

    /** 预约送达时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "送达时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reservationTime;

    /** 预约送达日期 */
    private Date reservationDate;

    /** 车辆签到时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "车辆签到时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signTime;

    /** 过磅时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "过磅时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date weighTime;

    /** 入库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date storeTime;

    /** 过磅照片 */
    private String poundPic;

    /** 毛重 */
    @Excel(name = "毛重")
    private Double grossWeight;

    /** 皮重 */
    @Excel(name = "皮重")
    private Double tareWeight;

    /** 净重 */
    @Excel(name = "净重")
    private Double netWeight;

    /** 质检照片 */
    private String qualityPic;

    /** 扣杂（吨） */
    @Excel(name = "扣杂", readConverterExp = "吨=")
    private Double deductWeight;

    /** 指标化验结果 */
    @Excel(name = "指标化验结果")
    private String assayResult;

    /** 根据化验结果计算规则 */
    private String calcRules;

    /** 结算时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结算时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date settlementTime;

    /** 结算单价 */
    @Excel(name = "结算单价")
    private BigDecimal settlementUnitPrice;

    /** 结算金额 */
    @Excel(name = "结算金额")
    private BigDecimal settlementTotalPrice;

    /** 结算重量 */
    @Excel(name = "结算重量")
    private Double settlementWeight;

    /** 状态：0.待过磅，1.已过磅，2.已入库,3.已回皮,4.已质，5.已化验，6.已结算 */
    private Integer state;

    @Excel(name = "燃料合同单价")
    private BigDecimal fuelContractPrice;

    private List<String> stateList;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setFactoryId(Long factoryId) 
    {
        this.factoryId = factoryId;
    }

    public Long getFactoryId() 
    {
        return factoryId;
    }
    public void setSupplierId(Long supplierId) 
    {
        this.supplierId = supplierId;
    }

    public Long getSupplierId() 
    {
        return supplierId;
    }
    public void setFuelId(Long fuelId) 
    {
        this.fuelId = fuelId;
    }

    public Long getFuelId() 
    {
        return fuelId;
    }
    public void setCarId(Long carId) 
    {
        this.carId = carId;
    }

    public Long getCarId() 
    {
        return carId;
    }
    public void setFactoryName(String factoryName) 
    {
        this.factoryName = factoryName;
    }

    public String getFactoryName() 
    {
        return factoryName;
    }
    public void setSupplierName(String supplierName) 
    {
        this.supplierName = supplierName;
    }

    public String getSupplierName() 
    {
        return supplierName;
    }
    public void setFuelName(String fuelName) 
    {
        this.fuelName = fuelName;
    }

    public String getFuelName() 
    {
        return fuelName;
    }
    public void setCarNum(String carNum) 
    {
        this.carNum = carNum;
    }

    public String getCarNum() 
    {
        return carNum;
    }
    public void setReservationTime(Date reservationTime) 
    {
        this.reservationTime = reservationTime;
    }

    public Date getReservationTime() 
    {
        return reservationTime;
    }
    public void setSignTime(Date signTime) 
    {
        this.signTime = signTime;
    }

    public Date getSignTime() 
    {
        return signTime;
    }
    public void setWeighTime(Date weighTime) 
    {
        this.weighTime = weighTime;
    }

    public Date getWeighTime() 
    {
        return weighTime;
    }
    public void setStoreTime(Date storeTime) 
    {
        this.storeTime = storeTime;
    }

    public Date getStoreTime() 
    {
        return storeTime;
    }

    public String getPoundPic() {
        return poundPic;
    }

    public void setPoundPic(String poundPic) {
        this.poundPic = poundPic;
    }

    public void setGrossWeight(Double grossWeight)
    {
        this.grossWeight = grossWeight;
    }

    public Double getGrossWeight()
    {
        return grossWeight;
    }
    public void setTareWeight(Double tareWeight)
    {
        this.tareWeight = tareWeight;
    }

    public Double getTareWeight()
    {
        return tareWeight;
    }
    public void setNetWeight(Double netWeight)
    {
        this.netWeight = netWeight;
    }

    public Double getNetWeight()
    {
        return netWeight;
    }
    public void setQualityPic(String qualityPic) 
    {
        this.qualityPic = qualityPic;
    }

    public String getQualityPic() 
    {
        return qualityPic;
    }
    public void setDeductWeight(Double deductWeight)
    {
        this.deductWeight = deductWeight;
    }

    public Double getDeductWeight()
    {
        return deductWeight;
    }
    public void setAssayResult(String assayResult) 
    {
        this.assayResult = assayResult;
    }

    public String getAssayResult() 
    {
        return assayResult;
    }
    public void setCalcRules(String calcRules) 
    {
        this.calcRules = calcRules;
    }

    public String getCalcRules() 
    {
        return calcRules;
    }
    public void setSettlementTime(Date settlementTime) 
    {
        this.settlementTime = settlementTime;
    }

    public Date getSettlementTime() 
    {
        return settlementTime;
    }
    public void setSettlementUnitPrice(BigDecimal settlementUnitPrice) 
    {
        this.settlementUnitPrice = settlementUnitPrice;
    }

    public BigDecimal getSettlementUnitPrice() 
    {
        return settlementUnitPrice;
    }
    public void setSettlementTotalPrice(BigDecimal settlementTotalPrice) 
    {
        this.settlementTotalPrice = settlementTotalPrice;
    }

    public BigDecimal getSettlementTotalPrice() 
    {
        return settlementTotalPrice;
    }
    public void setSettlementWeight(Double settlementWeight)
    {
        this.settlementWeight = settlementWeight;
    }

    public Double getSettlementWeight()
    {
        return settlementWeight;
    }
    public void setState(Integer state) 
    {
        this.state = state;
    }

    public Integer getState() 
    {
        return state;
    }

    public Date getReservationDate() {
        return reservationDate;
    }

    public void setReservationDate(Date reservationDate) {
        this.reservationDate = reservationDate;
    }

    public List<String> getStateList() {
        return stateList;
    }

    public void setStateList(List<String> stateList) {
        this.stateList = stateList;
    }

    public BigDecimal getFuelContractPrice() {
        return fuelContractPrice;
    }

    public void setFuelContractPrice(BigDecimal fuelContractPrice) {
        this.fuelContractPrice = fuelContractPrice;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("factoryId", getFactoryId())
            .append("supplierId", getSupplierId())
            .append("fuelId", getFuelId())
            .append("carId", getCarId())
            .append("factoryName", getFactoryName())
            .append("supplierName", getSupplierName())
            .append("fuelName", getFuelName())
            .append("carNum", getCarNum())
            .append("reservationTime", getReservationTime())
            .append("signTime", getSignTime())
            .append("weighTime", getWeighTime())
            .append("storeTime", getStoreTime())
            .append("poundPic", getPoundPic())
            .append("grossWeight", getGrossWeight())
            .append("tareWeight", getTareWeight())
            .append("netWeight", getNetWeight())
            .append("qualityPic", getQualityPic())
            .append("deductWeight", getDeductWeight())
            .append("assayResult", getAssayResult())
            .append("calcRules", getCalcRules())
            .append("settlementTime", getSettlementTime())
            .append("settlementUnitPrice", getSettlementUnitPrice())
            .append("settlementTotalPrice", getSettlementTotalPrice())
            .append("settlementWeight", getSettlementWeight())
            .append("state", getState())
            .append("createTime", getCreateTime())
            .toString();
    }
}
